package com.rookie.tool.module.util.trigger.component;

import java.util.HashMap;
import java.util.Map;

/**
 * 只要有一个返回true就会触发事件
 *
 * @author rookie
 */
public interface TriggerCondition {

    /**
     * 条件匹配,值是在方法执行前的参数值，aop的before通知
     *
     * @param param key是被TriggerParam注解标注的参数名，value是参数值
     * @return 结果
     */
    boolean beforeMatch(HashMap<String, Object> param);

    /**
     * 条件匹配,值是在方法执行后的参数值，aop的after通知
     *
     * @param before 入参前的参数
     * @param after  经过执行后的参数
     * @return 结果
     */
    boolean afterMatch(HashMap<String, Object> before, HashMap<String, Object> after);
}
